100 ::
110 REMark Adriens_bas
120 CLEAR: VARIABLES: IMAGE: JEUX: STOP
130 ::::
140 :
150 ::::
160 DEFine PROCedure VARIABLES
170  nb=19: x=1: y=2: d=3: ra=3
180   DIM t(nb,3): max=100: min=.5
190    Lx=max/2: Ly=max/2: dt=DATE
200     noir=0: rouge=2: blanc=7
210      espace=64: haut=4: bas=128
220       gauche=2: droite=16
230 END DEFine
240 :
250 DEFine PROCedure IMAGE
260  SCALE max,0,0: CLS#0
270   papier rouge: INK blanc: CLS
280 FOR compte=1 TO nb
290  Cx=RND(1 TO max): t(compte,x)=Cx
300  Cy=RND(1 TO max): t(compte,y)=Cy
310  Cd=RND(3 TO 9)  : t(compte,d)=Cd
320  CIRCLE Cx,Cy,Cd : PAUSE 10
330 END FOR compte
340  PLUS noir: LISTE 10: PAUSE
350 END DEFine
360 ::
370 DEFine PROCedure JEUX
380 REPeat
390  PLUS noir
400  FOR ct=1 TO nb
410    Cx=t(ct,x): Cy=t(ct,y): Cd=t(ct,d)
420      INK rouge: CIRCLE Cx,Cy,Cd
430    Cx= Cx + RND(-ra TO ra)
440    Cy= Cy + RND(-ra TO ra)
450      IF (Cx<=0)  : Cx=max
460      IF (Cx>=max): Cx=0
470      IF (Cy<=0)  : Cy=max
480      IF (Cy>=max): Cy=0
490    t(ct,x)=Cx: t(ct,y)=Cy
500      INK blanc: CIRCLE Cx,Cy,Cd
510  END FOR ct: PAUSE 10: TOUCHES
520   AT#0, 1,61: PRINT#0, DATE-dt
530 END REPeat
540 END DEFine
550 ::
560 DEFine PROCedure TOUCHES
570  PLUS rouge: key=KEYROW(1)
580 IF (key=haut)   : Ly=Ly+d
590  IF (Ly>max)    : Ly=Ly-d
600 IF (key=bas)    : Ly=Ly-d
610  IF (Ly<0)      : Ly=Ly+d
620 IF (key=gauche) : Lx=Lx-d
630  IF (Lx<0)      : Lx=Lx+d
640 IF (key=droite) : Lx=Lx+d
650  IF (Lx>max)    : Lx=Lx-d
660  PLUS noir
670  IF (key=espace): TESTS
680 END DEFine
690 ::
700 DEFine PROCedure TESTS
710  FOR kt=1 TO nb
720   kx=t(kt,x): ky=t(kt,y): kd=t(kt,d)
730   IF (kd<>min) THEN
740       left=kx-kd: right=kx+kd
750       down=ky-kd:    up=ky+kd
760     IF (Lx>left) AND (Lx<right) THEN
770     IF (Ly>down) AND (Ly<up) THEN
800           INK rouge: CIRCLE kx,ky,kd
810           t(kt,d)=min: LISTE 0
820           hit=hit+1
830           IF (hit=nb): STOP
840        END IF
850      END IF
860   END IF
870  END FOR kt
880 END DEFine
890 ::
900 DEFine PROCedure PLUS(couleur)
910  INK couleur
920    LINE Lx-d,Ly TO Lx+d,Ly
930    LINE Lx,Ly-d TO Lx,Ly+d
940 END DEFine
950 ::
960 DEFine PROCedure LISTE(ps)
970  CLS#2: PRINT#2; TO 6;'x'!!!'y'!!'dia'
980  FOR dn=1 TO 19
990    AT#2, dn,1: PRINT#2, dn
1000    FOR ac=1 TO 3
1010      AT#2, dn,ac*5
1020      PRINT#2, t(dn,ac)
1030    END FOR ac: PAUSE ps
1040  END FOR dn
1050 END DEFine
1060 :::::::::::::::::::::::::::::
1070 DEFine PROCedure papier(couleur)
1080 PAPER couleur
1090 END DEFine
1100 :
